Ext.namespace('AdministracionEmpresas');

AdministracionEmpresas.cantRegXpaginaEmpresas = 100;
AdministracionEmpresas.url = 'ConeccionesAJAX/AdministracionEmpresasAJAX.' + extensionServidor
AdministracionEmpresas.TXTF_EMEM_RUT = comunes.crear_text_formulario('TXTF_EMEM_RUT', '', 11, 0, 12, false, false, false, 'ValidaRut', '', 'TXTF_RAZON_SOCIAL');
AdministracionEmpresas.TXTF_RAZON_SOCIAL = comunes.crear_text_formulario('TXTF_RAZON_SOCIAL', '', 30, 0, 200, false, false, false, '', '', 'btn_buscar');

AdministracionEmpresas.camposStoreGrillaEmpresas = Ext.data.Record.create([
{
    name: 'EMEM_RUT',
    type: 'string'
}, {
    name: 'EMEM_RAZON_SOCIAL',
    type: 'string'
}, {
    name: 'ESES_DESCRIPCION',
    type: 'string'
}, {
    name: 'ESES_NID',
    type: 'int'
}, {
    name: 'EMEM_NOMBRE',
    type: 'string'
}, {
    name: 'EMEM_DIRECCION',
    type: 'string'
}, {
    name: 'CMCM_NID',
    type: 'int'
}, {
    name: 'CMCM_NOMBRE',
    type: 'string'
}, {
    name: 'EMEM_DIRECCION',
    type: 'string'
}, {
    name: 'EMEM_TELEFONO',
    type: 'string'
}, {
    name: 'EMEM_MAIL',
    type: 'string'
}, {
    name: 'EMEM_FECHA_REGISTRO',
    type: 'date',
    dateFormat: 'd/m/Y'
}
]);

AdministracionEmpresas.storeGrillaEmpresas = new Ext.data.JsonStore({
    id: 'storeGrillaEmpresas',
    name: 'storeGrillaEmpresas',
    root: 'data',
    totalProperty: 'totalRows',
    remoteSort: false,
    autoLoad: true,
    baseParams: {
        accion: 'ListarEmpresas',
        EMEM_RUT: AdministracionEmpresas.TXTF_EMEM_RUT.getValue(),
        EMEM_RAZON_SOCIAL: AdministracionEmpresas.TXTF_RAZON_SOCIAL.getValue(),
        limit: AdministracionEmpresas.cantRegXpaginaEmpresas
    },
    successProperty: 'success',
    fields: AdministracionEmpresas.camposStoreGrillaEmpresas,
    url: 'ConeccionesAJAX/AdministracionEmpresasAJAX.aspx',
    listeners: {
        loadexception: function(algoRaro, json){
            if (json.reader.jsonData.errors.id){
                Ext.MessageBox.show({
                    title: 'INFORMACION',
                    msg: json.reader.jsonData.errors.desc,
                    buttons: Ext.Msg.OK,
                    icon: Ext.MessageBox.INFO
                });
            }
        }
    }
});

AdministracionEmpresas.storeGrillaEmpresas.setDefaultSort("EMEM_NOMBRE", "ASC");

AdministracionEmpresas.columnasGrillaEmpresas = new Ext.ux.grid.LockingColumnModel([
    new Ext.grid.RowNumberer({        
        locked: true
    }), 
    {
        header: 'RUT',
        dataIndex: 'EMEM_RUT',
        sortable: true,
        width: 100,
        align: 'left',
        menuDisabled: false,
        hideable: false
    }, {
        header: 'RAZON SOCIAL',
        dataIndex: 'EMEM_RAZON_SOCIAL',
        sortable: true,
        width: 250,
        align: 'left',
        menuDisabled: false,
        hideable: true
    }, {
        header: 'DIRECCION',
        dataIndex: 'EMEM_DIRECCION',
        sortable: true,
        width: 250,
        align: 'left',
        menuDisabled: false
    }, {
        header: 'COMUNA',
        dataIndex: 'CMCM_NOMBRE',
        sortable: true,
        width: 200,
        align: 'left',
        menuDisabled: false
    }, {
        header: 'TELEFONO',
        dataIndex: 'EMEM_TELEFONO',
        sortable: true,
        width: 120,
        align: 'left',
        menuDisabled: false
    }, {
        header: 'E-MAIL',
        dataIndex: 'EMEM_MAIL',
        sortable: true,
        width: 220,
        align: 'left',
        menuDisabled: false
    }, {
        header: 'ESTADO',
        dataIndex: 'ESES_DESCRIPCION',
        sortable: true,
        width: 120,
        align: 'left',
        menuDisabled: false
    }, {
        header: 'FECHA REGISTRO',
        dataIndex: 'EMEM_FECHA_REGISTRO',
        sortable: true,
        width: 120,
        align: 'left',
        menuDisabled: false,
        renderer: Ext.util.Format.dateRenderer('d/m/Y')
    }]);


AdministracionEmpresas.fncReiniciarStoreEmpresas = function() {
    AdministracionEmpresas.paramGrillaEmpresas = {
        params: {
            accion: 'ListarEmpresas',
            EMEM_RUT: AdministracionEmpresas.TXTF_EMEM_RUT.getValue(),
            EMEM_RAZON_SOCIAL: AdministracionEmpresas.TXTF_RAZON_SOCIAL.getValue(),
            limit: AdministracionEmpresas.cantRegXpaginaEmpresas
        }
    }
    AdministracionEmpresas.storeGrillaEmpresas.baseParams = AdministracionEmpresas.paramGrillaEmpresas.params;
    AdministracionEmpresas.storeGrillaEmpresas.reload();
}

AdministracionEmpresas.btnReiniciar = new Ext.Button({
    iconCls: 'btnReiniciar',
    id: 'btnReiniciar',
    name: 'btnReiniciar',
    text: 'Reiniciar',    
    handler: function() {
        AdministracionEmpresas.TXTF_EMEM_RUT.setValue('');
        AdministracionEmpresas.TXTF_RAZON_SOCIAL.setValue('');
        AdministracionEmpresas.fncReiniciarStoreEmpresas();
    }
});

AdministracionEmpresas.btnBuscar = new Ext.Button({
    iconCls: 'btnBuscar',
    id: 'btn_buscar',
    name: 'btn_buscar',
    text: 'Buscar',
    handler: function() {
        if (AdministracionEmpresas.TXTF_EMEM_RUT.isValid())
        {
            AdministracionEmpresas.fncReiniciarStoreEmpresas();
        }
        else{
            Ext.MessageBox.show({
                title: 'ADVERTENCIA',
                msg: 'RUT INCORRECTO PARA CONTINUAR CON LA BUSQUEDA',
                buttons: Ext.Msg.OK,
                icon: Ext.MessageBox.WARNING
            });
        }
        
    }
});

AdministracionEmpresas.btnAgregar = new Ext.Button({
    iconCls: 'btnAgregar',
    id: 'btnAgregar',
    name: 'btnAgregar',
    text: 'Agregar',
    handler: function() {
        AdministracionEmpresas.fncCreaVentanaEmpresa('NEW');
    }
});

AdministracionEmpresas.rowSelectionModelGrillaEmpresas = new Ext.grid.RowSelectionModel(
{
    singleSelect: false,
    listeners: {
        rowselect: function(sm, row, rec) {
            AdministracionEmpresas.rowSelectionModelGrillaEmpresas.row = row;
            AdministracionEmpresas.rowSelectionModelGrillaEmpresas.record = rec;
            AdministracionEmpresas.RutEmpresas = AdministracionEmpresas.rowSelectionModelGrillaEmpresas.record.data.EMEM_RUT;
        }
    }
});

AdministracionEmpresas.toolBalGrilla = new Ext.PagingToolbar({
    pageSize: AdministracionEmpresas.cantRegXpaginaEmpresas,
    store: AdministracionEmpresas.storeGrillaEmpresas,
    displayInfo: true,
    displayMsg: 'INFO: Para visualizar haga doble click. Listando empresas {0} - {1} de {2}',
    emptyMsg: "No se encontraron empresas."
})

AdministracionEmpresas.grillaEmpresas = new Ext.grid.GridPanel({
    id: 'grillaEmpresas',
    name: 'grillaEmpresas',
    title: 'Mantenedor de Empresas',
    store: AdministracionEmpresas.storeGrillaEmpresas,
    cm: AdministracionEmpresas.columnasGrillaEmpresas,
    stripeRows: true,
    anchor: '100% 100%',
    autoScroll: true,
    loadMask: {
        msg: 'Cargando...'
    },
    columnLines: true,
    view: new Ext.ux.grid.LockingGridView(),
    tbar: ['Rut: ', AdministracionEmpresas.TXTF_EMEM_RUT,
    'Razon Social: ', AdministracionEmpresas.TXTF_RAZON_SOCIAL,
    AdministracionEmpresas.btnBuscar, '|',
    AdministracionEmpresas.btnAgregar, '|',
    AdministracionEmpresas.btnReiniciar],
    bbar: AdministracionEmpresas.toolBalGrilla,
    sm: AdministracionEmpresas.rowSelectionModelGrillaEmpresas   
});

AdministracionEmpresas.grillaEmpresas.on('rowdblClick', function() {
    if (AdministracionEmpresas.rowSelectionModelGrillaEmpresas.getSelected() != undefined) {
        AdministracionEmpresas.fncCreaVentanaEmpresa('VIEW');
    }
});

AdministracionEmpresas.fncCreaVentanaEmpresa = function(p_str_modo) {
    
    AdministracionEmpresas.fncCreaVentanaEmpresa.CamposStore_cmbComuna = ['CDCD_CODIGO', 'CMCM_NOMBRE'];    
    
    AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbComuna = new Ext.data.JsonStore(
    {
        root : 'data',
        autoLoad : false,
        remoteSort : false,
        baseParams : {
            accion : 'ListarComunas'
        },
        successProperty : 'success',
        fields : AdministracionEmpresas.fncCreaVentanaEmpresa.CamposStore_cmbComuna,
        url : AdministracionEmpresas.url,
        listeners: {
            loadexception: function(algoRaro, json){
                if (json.reader.jsonData.errors.id){
                    Ext.MessageBox.show({
                        title: 'INFORMACION',
                        msg: json.reader.jsonData.errors.desc,
                        buttons: Ext.Msg.OK,
                        icon: Ext.MessageBox.INFO
                    });
                }
            }
        }
    });
    
    AdministracionEmpresas.fncCreaVentanaEmpresa.CamposStore_cmbEstado = ['ESES_NID', 'ESES_DESCRIPCION'];
    
    AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbEstado = new Ext.data.JsonStore(
    {
        root : 'data',
        autoLoad : false,
        remoteSort : false,
        baseParams : {
            accion : 'ListarEstados'
        },
        successProperty : 'success',
        fields : AdministracionEmpresas.fncCreaVentanaEmpresa.CamposStore_cmbEstado,
        url : AdministracionEmpresas.url,
        listeners: {
            loadexception: function(algoRaro, json){
                if (json.reader.jsonData.errors.id){
                    Ext.MessageBox.show({
                        title: 'INFORMACION',
                        msg: json.reader.jsonData.errors.desc,
                        buttons: Ext.Msg.OK,
                        icon: Ext.MessageBox.INFO
                    });
                }
            }
        }
    });
    
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa = comunes.crear_text_formulario('EMEM_RUT','RUT',11,0,12,true,true,false,'ValidaRut','','EMEM_RAZON_SOCIAL','CajaMayus');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa.editable = false;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial = comunes.crear_text_formulario('EMEM_RAZON_SOCIAL','RAZON SOCIAL',37,6,200,true,true,false,'','','CMCM_CODIGO','CajaMayus');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial.editable = true;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna = comunes.crear_combobox_formulario('CMCM_CODIGO','COMUNA',37,true,true,false,'','',AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbComuna,'LOCAL', 'Seleccione...','EMEM_DIRECCION');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.hideTrigger = true;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.editable = true;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion = comunes.crear_text_formulario('EMEM_DIRECCION','DIRECCION',40,0,200,true,true,false,'','','EMEM_TELEFONO','CajaMayus');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion.editable = true;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono = comunes.crear_text_formulario('EMEM_TELEFONO','TELEFONO',11,0,20,true,true,false,'','','ESES_NID','CajaMayus');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono.editable = true;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado = comunes.crear_combobox_formulario('ESES_NID','ESTADO',20,true,true,false,'','',AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbEstado,'LOCAL', 'Seleccione...','');
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.editable = true;

    AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Editar = new Ext.Button({
        iconCls : 'btnEditar',
        id : 'Boton_Editar',
        name : 'Boton_Editar',
        text : 'Editar',
        hidden: p_str_modo == 'NEW' ? true : false,
        handler : function() {
            AdministracionEmpresas.fncBloqueaDesbloqueaCamposFormulario(false);
            AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial.focus(true, 1000);
            Ext.getCmp('Boton_Editar').setVisible(false);
            Ext.getCmp('Boton_Guardar').setVisible(true);
            Ext.getCmp('Boton_Limpiar').setVisible(true);
            Ext.getCmp('Boton_Cancelar').setVisible(true);
        }
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Guardar = new Ext.Button({
        iconCls : 'btnGuardar',
        id : 'Boton_Guardar',
        name : 'Boton_Guardar',
        text : p_str_modo == 'NEW' ? 'Crear empresa' : 'Guardar cambios',
        disabled: true,
        hidden: p_str_modo == 'NEW' ? false : true,
        handler : function() {
            AdministracionEmpresas.fncGrabaDatosEmpresa();
        }
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Limpiar = new Ext.Button({
        iconCls : 'btnLimpiar',
        id : 'Boton_Limpiar',
        name : 'Boton_Limpiar',
        text : 'Limpiar',
        hidden: p_str_modo == 'NEW' ? false : true,
        handler : function() {
            this.findParentByType('form').getForm().reset();
        }
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Cancelar = new Ext.Button({
        iconCls : 'btnCancelar',
        id : 'Boton_Cancelar',
        name : 'Boton_Cancelar',
        modo: p_str_modo,
        text : 'Cancelar',
        hidden: p_str_modo == 'NEW' ? false : true,
        handler : function() {
            if (this.modo == 'NEW'){
                if (Ext.getCmp('FormularioEmpresa').getForm().isDirty()){
                    Ext.Msg.confirm('Cancelar creación', '¿Está usted seguro que desea cancelar la creación?', function(btn, text) {
                        if (btn == 'yes') {
                            Ext.getCmp('VentanaEmpresa').destroy();
                        }
                    });
                }
                else{
                    Ext.getCmp('VentanaEmpresa').destroy();
                }
            }
            else{
                if (Ext.getCmp('FormularioEmpresa').getForm().isDirty()){
                    Ext.Msg.confirm('Cancelar cambios', '¿Está usted seguro que desea cancelar los cambios realizados?', function(btn, text) {
                        if (btn == 'yes') {
                            Ext.getCmp('FormularioEmpresa').getForm().reset();
                            AdministracionEmpresas.fncBloqueaDesbloqueaCamposFormulario(true);
                            Ext.getCmp('Boton_Editar').setVisible(true);
                            Ext.getCmp('Boton_Guardar').setVisible(false);
                            Ext.getCmp('Boton_Limpiar').setVisible(false);
                            Ext.getCmp('Boton_Cancelar').setVisible(false);
                        }
                    });
                }
                else{
                    AdministracionEmpresas.fncBloqueaDesbloqueaCamposFormulario(true);
                    Ext.getCmp('Boton_Editar').setVisible(true);
                    Ext.getCmp('Boton_Guardar').setVisible(false);
                    Ext.getCmp('Boton_Limpiar').setVisible(false);
                    Ext.getCmp('Boton_Cancelar').setVisible(false);
                }
            }
        }
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Formulario = new Ext.FormPanel(
    {
        id : 'FormularioEmpresa',
        name : 'FormularioEmpresa',
        labelAlign : 'left',
        frame : true,
        monitorValid: true,
        defaults : {
            bodyStyle : 'padding: 0px 0px 0px 0px'
        },
        autoDestroy : true,
        items : [{
            xtype : 'fieldset',
            columnWidth : 0.2,
            title : 'Información de la Empresa',
            collapsible : false,
            autoHeight : true,
            monitorValid : true,
            defaults : {
                bodyStyle : 'padding: 0px 0px 0px 0px'
            },
            // width :605,
            items : [{
                layout : 'column',
                items : [{
                    labelWidth : 100,
                    columnWidth : .5,
                    layout : 'form',
                    items : [AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa,
                    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial,
                    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna]
                }, {
                    labelWidth : 80,
                    columnWidth : .5,
                    layout : 'form',
                    items : [AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion,
                    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono,
                    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado]
                }]
            }]
        }],
        buttons : [AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Editar,
        AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Guardar,
        AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Limpiar,
        AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Cancelar
        ],
        buttonAlign : 'right'
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Formulario.on('clientvalidation', function(form, valid){
        if(valid && form.getForm().isDirty()){
            AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Guardar.enable();
        }else{
            AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Guardar.disable();
        }
    });

    //AdministracionEmpresas.fncCreaVentanaEmpresa.Formulario.getForm().reset();

    AdministracionEmpresas.fncCreaVentanaEmpresa.Ventana = new Ext.Window({
        iconCls: 'winEmpresa',
        id : 'VentanaEmpresa',
        name : 'VentanaEmpresa',
        title : '',
        layout : 'fit',
        width : 920,
        autoDestroy : true,
        plain : true,
        modal : true,
        border : true,
        closable : true,
        maximizable : false,
        minimizable : false,
        resizable : false,
        closeAction : 'close',
        defaults : {
            bodyStyle : 'padding: 0px 0px 0px 0px',
            autoHeight : true
        },
        items : [AdministracionEmpresas.fncCreaVentanaEmpresa.Formulario],
        constrainHeader: true
    });

    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa.tabIndex = 1;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial.tabIndex = 2;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.tabIndex = 3;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion.tabIndex = 4;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono.tabIndex = 5;
    AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.tabIndex = 6;
    //AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtMail.tabIndex = 7;
        
    if (p_str_modo == 'NEW') {
        AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbComuna.load();
        AdministracionEmpresas.fncCreaVentanaEmpresa.Store_cmbEstado.load();
        AdministracionEmpresas.fncCreaVentanaEmpresa.Ventana.setTitle('Creación de Empresa');
        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa.focus(true, 1000);
        AdministracionEmpresas.fncCreaVentanaEmpresa.Ventana.show();
    }
    else{
        AdministracionEmpresas.fncCreaVentanaEmpresa.Ventana.setTitle('Datos de Empresa');
        AdministracionEmpresas.fncCreaVentanaEmpresa.Ventana.show();
        AdministracionEmpresas.fncBuscarDatosUsuario();
        AdministracionEmpresas.fncBloqueaDesbloqueaCamposFormulario(true);
        AdministracionEmpresas.fncCreaVentanaEmpresa.Boton_Editar.focus(true, 1000);
    }
}

AdministracionEmpresas.fncBuscarDatosUsuario = function(){
    Ext.Ajax.timeout = 90000000;
    Ext.MessageBox.wait('Obteniendo datos...', 'Espere');
    Ext.Ajax.request({
        url : AdministracionEmpresas.url,
        method : 'POST',
        timeout : 30000,
        params : {
            accion : 'obtenerDatosEmpresa',
            EMEM_RUT : AdministracionEmpresas.RutEmpresas
        },
        success : function(resp) {
            if (resp.responseText != 'nosession') {
                obj = Ext.util.JSON.decode(resp.responseText);
                Ext.MessageBox.hide();
                if (obj.success) {
                    if (obj.created.resultado.length > 0){
                        
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa.setValue(obj.created.resultado[0].EMEM_RUT);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRutEmpresa.originalValue = obj.created.resultado[0].EMEM_RUT;

                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial.setValue(obj.created.resultado[0].EMEM_RAZON_SOCIAL);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtRazonSocial.originalValue = obj.created.resultado[0].EMEM_RAZON_SOCIAL;

                        tmp = {};
                        eval('tmp = {success: true, data: [{\'' + 'CDCD_CODIGO' + '\': \'' + obj.created.resultado[0].CMCM_CODIGO + '\',\'' + 'CMCM_NOMBRE' + '\': \'' + obj.created.resultado[0].CMCM_NOMBRE + '\'}]};');
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.getStore().loadData(tmp);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.setValue(obj.created.resultado[0].CMCM_CODIGO);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.originalValue = obj.created.resultado[0].CMCM_CODIGO;
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.mode = 'remote';
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.getStore().on('load', function(){
                            AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Comuna.mode = 'local';
                        })

                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion.setValue(obj.created.resultado[0].EMEM_DIRECCION);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtDireccion.originalValue = obj.created.resultado[0].EMEM_DIRECCION;

                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono.setValue(obj.created.resultado[0].EMEM_TELEFONO);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_txtTelefono.originalValue = obj.created.resultado[0].EMEM_TELEFONO;

                        tmp = {};
                        eval('tmp = {success: true, data: [{\'' + 'ESES_NID' + '\': \'' + obj.created.resultado[0].ESES_NID + '\',\'' + 'ESES_DESCRIPCION' + '\': \'' + obj.created.resultado[0].ESES_DESCRIPCION + '\'}]};');
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.getStore().loadData(tmp);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.setValue(obj.created.resultado[0].ESES_NID);
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.originalValue = obj.created.resultado[0].ESES_NID;
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.mode = 'remote';
                        AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.getStore().on('load', function(){
                            AdministracionEmpresas.fncCreaVentanaEmpresa.Campo_Combox_Estado.mode = 'local';
                        })
                    }
                    else{
                        Ext.MessageBox.show({
                            title : 'Información',
                            msg : 'No se encontraron los datos de la empresa seleccionada',
                            buttons : Ext.Msg.OK,
                            icon : Ext.MessageBox.INFO,
                            fn: function(){
                                Ext.getCmp('VentanaEmpresa').destroy();
                            }
                        });
                    }
                }
                else{
                    Ext.MessageBox.show({
                        title : 'Información',
                        msg : obj.errors.desc,
                        buttons : Ext.Msg.OK,
                        icon : Ext.MessageBox.INFO,
                        fn: function(){
                            Ext.getCmp('VentanaEmpresa').destroy();
                        }
                    });
                }
            }
        },
        failure : function(resp, opt) {
            Ext.MessageBox.hide();
            Ext.MessageBox.show({
                title : 'ERROR',
                msg : 'No se pudo establecer comunicacion con el servidor.',
                buttons : Ext.Msg.OK,
                icon : Ext.MessageBox.ERROR
            });
        }
    });
    
}

AdministracionEmpresas.fncBloqueaDesbloqueaCamposFormulario = function(p_boo_bloquea){
    form = Ext.getCmp('FormularioEmpresa');
    form.getForm().items.each(function(field) {
        switch (field.getXType()) {
            case 'numberfield' :
                if(field.editable){
                    field.setReadOnly(p_boo_bloquea);
                }
                else{
                    field.setReadOnly(true);
                }
                break;
            case 'textfield' :
                if(field.editable){
                    field.setReadOnly(p_boo_bloquea);
                }
                else{
                    field.setReadOnly(true);
                }
                break;
            case 'combo' :
                if(field.editable){
                    field.setReadOnly(p_boo_bloquea);
                }
                else{
                    field.setReadOnly(true);
                }
                break;
            case 'checkbox' :
                if(field.editable){
                    field.setDisabled(p_boo_bloquea);
                }
                else{
                    field.setDisabled(true);
                }
                break;
        }
    });
}

AdministracionEmpresas.fncGrabaDatosEmpresa = function(){
    Ext.Ajax.timeout = 90000000;
    Ext.MessageBox.wait('Grabando datos de la empresa...', 'Guardando');
    Ext.Ajax.request({
        url : AdministracionEmpresas.url,
        method : 'POST',
        timeout : 30000,
        params : {
            accion : 'grabarDatosEmpresa',
            JsonFormulario : Ext.encode(Ext.getCmp('FormularioEmpresa').getForm().getFieldValues())
        },
        success : function(resp) {
            if (resp.responseText != 'nosession') {
                obj = Ext.util.JSON.decode(resp.responseText);
                Ext.MessageBox.hide();
                if (obj.success) {
                    alert('algo');
                    /*if (obj.created.resultado.length > 0){

                    }*/
                    /*else{
                        Ext.MessageBox.show({
                            title : 'Información',
                            msg : 'No se encontraron los datos de la empresa seleccionada',
                            buttons : Ext.Msg.OK,
                            icon : Ext.MessageBox.INFO,
                            fn: function(){
                                Ext.getCmp('VentanaEmpresa').destroy();
                            }
                        });
                    }*/
                }
                else{
                    Ext.MessageBox.show({
                        title : 'Información',
                        msg : obj.errors.desc,
                        buttons : Ext.Msg.OK,
                        icon : Ext.MessageBox.INFO/*,
                        fn: function(){
                            Ext.getCmp('VentanaEmpresa').destroy();
                        }*/
                    });
                }
            }
        },
        failure : function(resp, opt) {
            Ext.MessageBox.hide();
            Ext.MessageBox.show({
                title : 'ERROR',
                msg : 'No se pudo establecer comunicacion con el servidor.',
                buttons : Ext.Msg.OK,
                icon : Ext.MessageBox.ERROR
            });
        }
    });
}